A workflow or process-flow comprises the technical and/or procedural steps required for executing a particular real-world process on an object, the technical and other means to conduct the processing steps, and the transfer and flow of data/signaling between the means and/or steps to execute the process on the object. Each step is defined by a set of processes, activities or tasks that need to be conducted. Within a workflow, objects (e.g., products, technical objects, data, claims, accounts, jobs etc.) pass through the different steps in the specified order from start to finish, and the processes at each step are executed either by dedicated technical processing devices or means, by system functions (also, e.g., computer program products) or by dedicated signaling to specific people to perform activities on the object. Workflow systems can be set up using a visual front end or can be hardcoded, and their execution is delegated to a workflow execution engine that handles the invocation and signal generation of the remote devices or applications.
In the prior art, workflow systems are technically split into four broad families, namely (i) production workflow systems, (ii) computational workflow systems, (iii) scientific workflow systems and (iv) business workflow systems. The production or industrial process systems are dedicated to steering and executing processing of technical objects, such as devices or products, by steering and operating appropriate devices for executing the activities of the workflow steps; the computational process systems serve for functional processing and computation of data objects; the business process systems serve for the automated control of business processes inter alia by signal generation to people conducting the process steps; and finally, scientific workflow systems serve for acting as middleware in the scientific research process and typically have properties of all three mentioned control and data workflow systems. Workflow systems usually provide numerous capabilities for the monitoring of workflow processes, which are modeled and executed within the workflow system. Such capabilities can include, for example, analysis tools for the measurement and display of metrics with respect to the status of the processes, times to execute work steps in the processes, and bottlenecks in the processes. These capabilities can also be transferred to the workflow system for workflow processes, which execute in systems external to the workflow system.
All four families of workflow systems comprise as the core the mentioned workflow execution engine, a process management system or a similar control device/system controlling and monitoring the processing of the objects. The workflow execution engine of the workflow systems is typically implemented as a processor-based automation of the process flow, i.e., the industrial or production processes, the business processes, the data or computational process and the scientific processes represented by the steps of the workflow. The workflow execution engine steers a sequence of activities (work tasks), interactions and signaling with execution devices or means, or in interaction with human resources (users) or IT resources (software applications and databases), as well as rules controlling the progression of processes through the various stages associated with each activity.
At the various stages of the process, especially in business workflow systems, activities may require human interactions: typically user data entry through a form. They may also interact with IT applications or data sources to exchange information in various formats, such as files, e-mails, database content, etc. For certain workflow systems, one of the ways to automate and operate the steering and monitoring of the processes by means of the workflow execution engine is to develop appropriate processor codes and applications that lead a processor-based workflow execution engine for execution of the required steps of the process; however, in practice, such workflow execution engines are rarely able to accurately or completely execute all the steps of the process by means of the workflow system. To solve this problem, in the prior art, the typical approach is to use a combination of software and human intervention; however, this approach is more complex, making the reproducibility, the predictability, and even the information flow and documentation process difficult.
Another problem in the prior art system is that workflows are difficult to generate dynamically. However, at a certain process step in the workflow, it may be necessary to adapt the processing by steps which are not predictable at the beginning of the process flow or workflow and which may depend on environmental parameters or operational parameters of the execution devices or other state parameters of a certain workflow state. To cope with this problem, in the prior art, specialized software has been developed with the goal to enable the translation of possible process steps into a computer operation code, wherein the source code is processed by an interpreter for execution by the processors. The system will either use services in connected applications to perform operations or, when a step is too complex to automate, will ask for human input. However, interpreting the source code requires limited computing resources and takes time. Because the source code must be interpreted for execution, the execution of a not preimplemented process is time consuming or, even worse, not possible to be put in execution in an automated manner by the workflow system.